package com.dkd.day20250705;

import java.util.HashMap;
import java.util.Scanner;

public class Main7 {
    public static void main(String[] args) {
        //题目描述
        //对于一个连续正整数组成的序列，可以将其拼接成一个字符串，再将字符串里的部分字符打乱顺序。如序列8 9 10 11 12，拼接成的字符串为89101112，打乱一部分字符后得到90811211，原来的正整数10就被拆成了0和1。
        //
        //现给定一个按如上规则得到的打乱字符的字符串，请将其还原成连续正整数序列，并输出序列中最小的数字。
        //
        //输入描述
        //输入一行，为打乱字符的字符串和正整数序列的长度，两者间用空格分隔，字符串长度不超过200，正整数不超过1000，保证输入可以还原成唯一序列。
        //
        //输出描述
        //输出一个数字，为序列中最小的数字。
        Scanner sc = new Scanner(System.in);

        //获得数据
        String s = sc.next();
        int number = sc.nextInt();

        //获得字符
        HashMap<Character, Integer> map = new HashMap<Character, Integer>();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (map.containsKey(c)) {
                int count = map.get(c);
                map.put(c, count + 1);
            }else{
               map.put(c, 1);
            }
  //          map.put(c, map.getOrDefault(c, 0) + 1);
        }
        System.out.println("数据算好了");

        //滑动窗口
        int i =1;
        while (i < 1000-number+1) {

            HashMap<Character,Integer> record = new HashMap<>();
            for(int j=0;j<number;j++){
                String s1 = String.valueOf(i+j);
                for(int k=0;k<s1.length();k++){
                    char c1 = s1.charAt(k);  // 直接获取字符
                    if(record.containsKey(c1)){
                        int value = record.get(c1);
                        record.put(c1, value+1);
                    }else{
                        record.put(c1, 1);
                    }
  //                  record.put(c1, record.getOrDefault(c1, 0) + 1);
                }
            }

            boolean flag = true;

            //判断字符是否一样

            if(map.equals(record)){
                System.out.println(i);
                return;
            }

            for(Character c:record.keySet()){
                if(!map.containsKey(c) || record.get(c)-map.get(c)!=0){
                    flag = false;
                    break;
                }
            }

            if(flag){
                System.out.println(i);
                return;
            }

            i++;
        }

    }
}
